Add Node Processing Status feature#494
Conversation
Integrate upstream
…-from-nodedelegatemodel Add UI update signal
|
It seems OK to merge. |
lonnie-souder-ii
left a comment
There was a problem hiding this comment.
@tatatupi
Seems mostly fine to me. A few probing questions:
- Am I correct that this only applies to the DataFlow use-case; not the straight abstract graph classes?
- Can the icon be disabled if we don't want it to show?
- Can the icons be configured to match an end user's theme more closely?
| Empty = 4, /// | ||
| Failed = 5, /// | ||
| Partial = 6, /// | ||
| }; |
There was a problem hiding this comment.
Maybe some use-cases or a short comment could help others?
What is the difference between NoStatus and Empty?
Between Processing and Partial?
There was a problem hiding this comment.
The short comments have been added. Thanks for the suggestion!
NoStatus indicates the absence of a processing status for the node in the UI. Empty means that there is no valid input data and therefore nothing to compute.
Processing means that processing is in progress. Partial means that the computation was finished incompletely and only partial results are available.
src/DefaultNodePainter.cpp
Outdated
| QSize size = geometry.size(nodeId); | ||
|
|
||
| QIcon icon = ngo.processingStatusIcon(); | ||
| QSize iconSize(16, 16); |
There was a problem hiding this comment.
In the demo/preview animation the icons were quite pixelized. Would it help to generate a slightly higher-resolution bitmap? Like 64x64, for example
There was a problem hiding this comment.
For resizable nodes we draw a dot approximately in the same corner of the node. What happens if we use both features at the same time?
There was a problem hiding this comment.
The 64x64 bitmap resolution is now applied. Thanks for the suggestion!
There was a problem hiding this comment.
@Llcoolsouder, it is now possible to configure the icon theme, changing the size, margin, bitmap resolution, and also the image. Here's an example:
QtNodes::ProcessingIconStyle style;
style._margin = 4.0;
style._pos = QtNodes::ProcessingIconPos::BottomLeft;
style._size = 10.0;
setStatusIconStyle(style);
QPixmap pixmap(32, 32);
pixmap.fill(QColor("red"));
setStatusIcon(QtNodes::NodeProcessingStatus::Updated, pixmap);
paceholder
left a comment
There was a problem hiding this comment.
Some questions in the review need explanation. Thanks for this feature, looks cool.
@Llcoolsouder
|

Type of change
Description
Node Processing Status is a feature that allows the user to track the processing steps taking place on a node. The gif below illustrates this with the Random Number node, created as an example of this functionality:
The dynamic icons that appear on the lower right side of the node demonstrate the processing scheme: the first icon (empty icon) demonstrates that there are empty entries in the node; the second icon (processing icon) shows that processing is taking place within the node; the third (updated icon) shows that processing has completed and the node has been updated.
Other icons are also present in the feature's schematic:
Testing